]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
a11y: using generic accessible at slider
authorAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 22 Aug 2013 21:15:35 +0000 (23:15 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 28 Aug 2013 14:05:54 +0000 (16:05 +0200)
Needed in order to fill the AtkValue implementation using
signal callbacks (ala ShellGenericContainer).

https://bugzilla.gnome.org/show_bug.cgi?id=648623

js/ui/slider.js

index ab90d61d2d59710286b37de7e37d3477aa756d1c..e098846c52ebda34e02ee259c419ae2361edeae5 100644 (file)
@@ -29,6 +29,17 @@ const Slider = new Lang.Class({
 
         this._releaseId = this._motionId = 0;
         this._dragging = false;
+
+        this._customAccessible = St.GenericAccessible.new_for_actor(this.actor);
+        this.actor.set_accessible(this._customAccessible);
+
+        this._customAccessible.connect('get-current-value', Lang.bind(this, this._getCurrentValue));
+        this._customAccessible.connect('get-minimum-value', Lang.bind(this, this._getMinimumValue));
+        this._customAccessible.connect('get-maximum-value', Lang.bind(this, this._getMaximumValue));
+        this._customAccessible.connect('get-minimum-increment', Lang.bind(this, this._getMinimumIncrement));
+        this._customAccessible.connect('set-current-value', Lang.bind(this, this._setCurrentValue));
+
+        this.connect('value-changed', Lang.bind(this, this._valueChanged));
     },
 
     setValue: function(value) {
@@ -204,6 +215,30 @@ const Slider = new Lang.Class({
         this.emit('value-changed', this._value);
     },
 
+    _getCurrentValue: function (actor) {
+        return this._value;
+    },
+
+    _getMinimumValue: function (actor) {
+        return 0;
+    },
+
+    _getMaximumValue: function (actor) {
+        return 1;
+    },
+
+    _getMinimumIncrement: function (actor) {
+        return 0.1;
+    },
+
+    _setCurrentValue: function (actor, value) {
+        this._value = value;
+    },
+
+    _valueChanged: function (slider, value, property) {
+        this._customAccessible.notify ("accessible-value");
+    },
+
     get value() {
         return this._value;
     }